package com.sun.test;

import java.util.Arrays;

/**
 * 数组相当于数据结构的一种实现，很多数据在进行存储的时候需要使用数组
 * 数据结构:
 *         线性表
 *         非线性表
 *         树
 *         图
 *         队列
 *         栈
 *   数组经常会用来考排序算法：
 *         面试需求：
 *              1、写出某种排序算法
 *              冒泡排序
 *              选择排序
 *              插入排序
 *              快速排序
 *              2、排序算法的时间复杂度（空间复杂度）衡量一个数据结构是否合适的衡量标准
 *              3、排序算法的稳定性
 *              排序之后的值跟排序之前的值位置是否发生变化
 */
public class ArraySort {

    public static void main(String[] args) {
        //1.定义数组
        int []arr1=new int[]{12,14,49,30,44,36,80,99};
        //将数组进行排序操作，从小到大
        //1冒泡排序
        /*for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1.length-i-1; j++) {
                if(arr1[j]>arr1[j+1]){
                    int temp = arr1[j];
                    arr1[j] = arr1[j+1];
                    arr1[j+1] = temp;
                }
            }
        }
        for (int i : arr1) {
            System.out.println(i);
        }*/
        //选择排序
        for (int i = 0; i < arr1.length; i++) {
            for (int j = i+1; j < arr1.length; j++) {
                if(arr1[i]>arr1[j]){
                    int temp=arr1[i];
                    arr1[i]=arr1[j];
                    arr1[j]=temp;
                }
            }
        }
        for (int a : arr1) {
            System.out.println(a);
        }

        //方式3
       /* Arrays.sort(arr1);
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i] + "\t");
        }
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i] + "\t");
        }*/
    }
}
